package com.packt.webstore.domain;

import java.math.BigDecimal;

import org.springframework.web.multipart.MultipartFile;

public class Product {
	private String productId;
	private String name;
	private BigDecimal unitPrice;
	private String description;
	private String manufacturer;
	private String category;
	private Long unitsInStock;
	private Long unidadeDeOrdem;
	private MultipartFile  productImage;
	private Boolean discontinued;
    private String condition;
  
    
    public Boolean getDiscontinued() {
		return discontinued;
	}

	public void setDiscontinued(Boolean discontinued) {
		this.discontinued = discontinued;
	}

	public void setUnidadeDeStock(Long unidadeDeStock) {
		this.unitsInStock = unidadeDeStock;
	}

	public Product(){
    	
    	super();
    }
    
    public Product(String productId, String nome, BigDecimal unidadePreco){
    	this.productId = productId;
    	this.name = nome;
    	this.unitPrice = unidadePreco;
    	
    }
	
	public String getProductId() {
		return productId;
	}

	public void setProductId(String productId) {
		this.productId = productId;
	}

	public String getNome() {
		return name;
	}

	public void setNome(String nome) {
		this.name = nome;
	}

	public BigDecimal getUnidadePreco() {
		return unitPrice;
	}

	public void setUnidadePreco(BigDecimal unidadePreco) {
		this.unitPrice = unidadePreco;
	}

	public String getDescricao() {
		return description;
	}

	public void setDescricao(String descricao) {
		this.description = descricao;
	}

	public String getFabrica() {
		return manufacturer;
	}

	public void setFabrica(String fabrica) {
		this.manufacturer = fabrica;
	}

	public String getCategorio() {
		return category;
	}

	public void setCategorio(String categorio) {
		this.category = categorio;
	}

	public Long getUnidadeDeStock() {
		return unitsInStock;
	}

	public void setUnidadeDeStock(long i) {
		this.unitsInStock = i;
	}

	public Long getUnidadeDeOrdem() {
		return unidadeDeOrdem;
	}

	public void setUnidadeDeOrdem(Long unidadeDeOrdem) {
		this.unidadeDeOrdem = unidadeDeOrdem;
	}

	public Boolean getDisconinuado() {
		return discontinued;
	}

	public void setDisconinuado(Boolean disconinuado) {
		this.discontinued = disconinuado;
	}

	public String getCondicao() {
		return condition;
	}

	public void setCondicao(String condicao) {
		this.condition = condicao;
	}
	
	@Override
	public boolean equals(Object obj){
		if(this == obj)
			return true;
		if(obj == null)
			return false;
		if(getClass() != obj.getClass())
			return false;
		Product other = (Product) obj;
		if(productId == null){
			if(other.productId != null)
				return false;
		}else if(!productId.equals(other.productId))
			return false;
		return true;
		
	}
	
	@Override
	public int hashCode(){
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((productId == null) ? 0 : productId.hashCode());
		return result;
		
	}
	
	  @Override
	  public String toString(){
		  return "Product [productId=" + productId + ", name=" + name + 
				  "]";
	  }

	public MultipartFile getProductImage() {
		return productImage;
	}

	public void setProductImage(MultipartFile productImage) {
		this.productImage = productImage;
	}

}
